package model

import (
	"gorm.io/gorm"
	"time"
)

// 下单表
type IsOrders struct {
	Id          uint64         `gorm:"column:id;type:bigint UNSIGNED;comment:订单id;primaryKey;not null;" json:"id"`                               // 订单id
	UserId      int64          `gorm:"column:user_id;type:bigint;comment:用户id;not null;" json:"user_id"`                                         // 用户id
	ShopId      int64          `gorm:"column:shop_id;type:bigint;comment:商品id;not null;" json:"shop_id"`                                         // 商品id
	OrderNumber string         `gorm:"column:order_number;type:varchar(50);comment:订单编号;not null;" json:"order_number"`                          // 订单编号
	OrderStatus int32          `gorm:"column:order_status;type:int;comment:订单支付状态(1:待支付 2:待收货 3:已完成);not null;" json:"order_status"`             // 订单支付状态(1:待支付 2:待收货 3:已完成)
	Coupons     int32          `gorm:"column:coupons;type:int;comment:使用优惠卷(1:是 2:否);default:NULL;" json:"coupons"`                              // 使用优惠卷(1:是 2:否)
	PayMethod   int32          `gorm:"column:pay_method;type:int;comment:支付方式(1:微信  2:支付宝);not null;" json:"pay_method"`                         // 支付方式(1:微信  2:支付宝)
	OrderAmount int32          `gorm:"column:order_amount;type:int;comment:订单总价;not null;" json:"order_amount"`                                  // 订单总价
	Address     string         `gorm:"column:address;type:varchar(255);comment:地址;not null;" json:"address"`                                     // 地址
	OrderRemark string         `gorm:"column:order_remark;type:varchar(255);comment:订单备注;default:NULL;" json:"order_remark"`                     // 订单备注
	CreatedAt   time.Time      `gorm:"column:created_at;type:datetime(3);comment:创建时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 创建时间
	UpdatedAt   time.Time      `gorm:"column:updated_at;type:datetime(3);comment:修改时间;not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"` // 修改时间
	DeletedAt   gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);comment:删除时间;default:NULL;" json:"deleted_at"`                          // 删除时间
}

func (io *IsOrders) TableName() string {
	return "is_orders"
}

// 下单关联表
type OrderItems struct {
	Id         int64          `gorm:"column:id;type:bigint;primaryKey;not null;" json:"id"`
	OrderId    int64          `gorm:"column:order_id;type:bigint;comment:订单id;not null;" json:"order_id"`                                       // 订单id
	ShopId     int64          `gorm:"column:shop_id;type:bigint;comment:商品id;not null;" json:"shop_id"`                                         // 商品id
	BusinessId int64          `gorm:"column:business_id;type:bigint;comment:商家id;not null;" json:"business_id"`                                 // 商家id
	ShopNum    int32          `gorm:"column:shop_num;type:int;comment:商品数量;not null;" json:"shop_num"`                                          // 商品数量
	ShopPrice  int32          `gorm:"column:shop_price;type:int;comment:商品价格;not null;" json:"shop_price"`                                      // 商品价格
	CreatedAt  time.Time      `gorm:"column:created_at;type:datetime(3);comment:创建时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 创建时间
	UpdatedAt  time.Time      `gorm:"column:updated_at;type:datetime(3);comment:修改时间;not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"` // 修改时间
	DeletedAt  gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);comment:删除时间;default:NULL;" json:"deleted_at"`                          // 删除时间
}

func (oi *OrderItems) TableName() string {
	return "order_items"
}
